<?php
/**
 * 类型声明 用与参数和返回值
 *
 */
declare(strict_types=1);  //严格类型
function test(int $a, int $b) :int {
    return $a + $b;
}

/**
 * 强制声明了没有返回值,返回了就会报错
 * @param int $a
 * @param int $b
 */
function test1(int $a, int $b) :void {
    //return $a + $b;
    return;
}

//?T 7.1版本 就支持的联合类型
function joind(?int $a, int|string $b) {
    return $a . $b;
}

//8.2 才支持的联合类型
/*function join8(int $a, int|string $b) {
    return $a . $b;
}*/

//test(1,'2'); //严格类型下,才会报错
//test(1,'abc');
//test(1,2);
var_dump(joind(null, 2));
